//
//  Git-Team.swift
//  Documentation
//
//  Created by Toj on 12/24/21.
//

// MARK: - 1. 分支命名
/*
 1.1 master: 线上发布最新分支.
 说明: 线上分支, 禁止向该分支做Push动作, 其不需要合并到任何分支.
 来源: 无来源, 根分支.
 目的: 保证线上稳定, 他就是线上
 规范: master
 e.g.: master
 
 1.2 develop: 开发最稳定分支, 接近master分支. 可以随时创建dev/ feature分支
 说明: 与master并行的分支，其不需要合并到任何分支.
 来源: master分支.
 目的: 开发稳定. 可能合入master
 规范: develop
 e.g.: develop
 
 1.3 dev/ feature: 新功能分支
 1.3.1 个人开发
 说明: 从develop创建新功能的分支.
 来源: develop分支.
 目的: develop分支.
 规范: dev-version-developer-JiraNO.(如果没Jira可以用Name功能名代替).
 e.g.: dev-0.1-toj-9527
 
 1.3.2 团队开发
 功能总分支
 说明: 从develop创建新功能的分支.
 来源: develop分支.
 目的: develop分支.
 规范: dev-version
 e.g.: dev-0.2
 
 功能个人子分支
 说明: 从 dev-version 创建个人开发分支.
 来源: dev-version分支.
 目的: dev-version分支.
 规范: dev-version-developer-JiraNO.(如果没Jira可以用Name功能名代替).
 e.g.: dev-0.1-toj-9527
 
 
 1.4 release: 提审中的分支
 说明: develop分支TestFight提测没问题后, 创建的分支.
 来源: develop分支.
 目的: master分支.
 规范: release-version
 e.g.: release-0.1
 
 1.5 hotfix : 热更新分支
 说明: 用于线上出现问题及时进行修复.
 来源: master.
 目的: 合入develop分支和master分支.
 规范: hotfix-version-developer-JiraNO.
 e.g.: hotfix-0.1.1-toj-9527
 
 1.6 Tag: 标签
 说明: release/ hotfix后用tag, 标记当前分支干什么用的, 上线什么功能. 解决什么bug.
 规范: Tag-version
 e.g.: Tag-0.9.2.
 */

// MARK: - 2. 开发过程
/*
 2.1 如何开发新功能?
 2.1.1 从develop分支拉出dev/ feature分支.
 2.1.2 在dev/ feature分支上进行多人团队开发.
 2.1.2.1 多人开发: 每个人创建此版本的个人开发功能分支.
 2.1.2.2 多人开发: 个人分支最后合到dev/ feature分支.
 2.1.3 开发完成后，自测dev/ feature分支, 测试完成达到提测标准. 合并到develop分支.
 
 2.2 如何提测发布?
 2.2.1 发提测邮件 目前没有.
 2.2.2 QA测试人员测试develop分支下的Test/ Variants/ Produce环境
 2.2.3 QA提出的Bug, 在dev/ feature分支下进行修改. 每个人在自己的分支下修改.
 2.2.4 dev/ feature分支问题修改完后, 再次合并到develop
 2.2.5 develop测试没有问题后, 提交版本到Appstore, 做TestFight线上环境测试.
 2.2.5 TestFight没问题准备提审, 并且打出release版本分支, 等待审核通过后合入master分支,
 2.2.6 审核通过后将release分支分别合并到master分支.
 2.2.7 在master分支打上相应的Tag.
 
 2.3 hotfix版本
 当发布版本出现问题需要紧急处理时, 从master分支拉出相应的hotfix分支.
 提测流程2.2
 修改发布完后再合并到develop和master分支, 并在master分支打上相应的Tag.
 */
